Assemble projects into a sceneΒΆ
Gather animation
Bring animation files into the scene using mod.createref.
You can have as many animation references as needed (for instance,
one reference for each character or prop, or several files in case
the animation work was split, or a single file for the whole
animation.
local mod = Document:modify ()
-- using prefixnodes=false, we make sure the animation comes in
-- the exact same way it was generated
mod.createref ("Animation", "/prod/shot1001/animation/anim.abc", nil, {prefixnodes=false})
With multiple files:
local mod = Document:modify ()
mod.createref ("girl", "/prod/shot1001/animation/girl.abc", nil, {containschildren=true,prefixnodes=false})
mod.createref ("dog", "/prod/shot1001/animation/dog.abc", nil, {containschildren=true,prefixnodes=false})
Or, if each geometry archive is baked without prefix:
local mod = Document:modify ()
mod.createref ("girl", "/prod/shot1001/animation/girl.abc", nil, {containschildren=false,prefixnodes=true})
mod.createref ("dog", "/prod/shot1001/animation/dog.abc", nil, {containschildren=false,prefixnodes=true})
to mimic Maya references layout.
Gather shading
Bring Guerilla shading projects into the scene using
mod.createref ().
Note that Guerilla shading projects usually contain
more than was is really needed (RenderPasses, Lights, etc.)
You can either delete these using mod.deletenode ():
local mod = Document:modify ()
local ref, roots = mod.createref ("girl", "/prod/assets/girl/shading.gproject")
for k, node in pairs (roots) do
if not is_useful (node) then
mod.deletenode (node)
end
end
or by flagging these nodes as non-referenceable
local mod = Document:modify ()
for node in children (Document, "Node") do
if not is_useful (node) then
-- create the Referenceable plug if it doesn't exist
if not node.Referenceable then
mod.createplug("Plug", node, "Referenceable", Plug.Dynamic, types.bool, true)
end
-- force its value to false
mod.set(node.Referenceable,false)
end
end